Persist research stages and resume shadow and human decisions safely - #596
Merged
Conversation
Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Codex <noreply@openai.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Interrupted research currently loses completed work, and the normal automation cycle cannot resume a candidate's first console delivery after a checkpoint. Persist each existing promotion-ticket stage under the frozen input, code, parameter, cost and validator identity. Resume completed results, keep unknown outcomes parked, and reuse terminal tickets instead of starting another experiment.
Research, console decision recovery and the local decision CLI share the same directory lock. A new optional admission callback runs under that lock only for new experiments, before any model request; existing tickets bypass admission. Normal automation and the actionable runner use the saved path, including a narrowly scoped first-delivery recovery.
Forward shadow can remain pending until its observation window completes. A dedicated read-only callback resumes only at its saved deadline and validates paired evidence, including predecessor receipts. The original drift observation can expire while this existing experiment waits: only its verified shadow or human-decision tail may continue, without repeating diagnosis, optimization, backtest or an unknown console POST. New experiments still require fresh drift evidence. Human acceptance grants only intent, never live authority. The reusable drift workflow adopts the published Codex-only AAB revision without changing its schedule or data collection.
Validation: isolated, network-blocked 298 tests and 37 subtests passed; workflow test, actionlint, Ruff and diff checks passed. Independent review covered normal-caller recovery and admission, then 28 shadow checks plus four regression cases for decisions after stale observations. CN's actual calling path passed with the new optional reader. No live model, console or broker calls. Directory locking covers one shared filesystem; the concrete observation reader remains responsible for real data provenance, source/parameter binding and the full forward calendar window.